<!DOCTYPE html>
<html lang="zh_cn">
<head>
          <title>来玩魔王的咚</title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta charset="utf-8" />
        <!-- twitter card metadata -->
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="/images/mowang.png">
<meta name="twitter:site" content="">
<meta name="twitter:title" content="Go 基础入门">
<meta name="twitter:description" content="<p>使用：官网Go指南，安装Go语言；环境变量：go的环境变量，修改环境变量；采用Go Module的方式创建项目；编译发布：代码格式化工具，编译成可执行文件，跨平台编译</p>">
        <!-- OG Tags -->
<meta property="og:url" content="/gotour-basic-tutorial.html"/>
<meta property="og:title" content="来玩魔王的咚 | Go 基础入门" />
<meta property="og:description" content="<p>使用：官网Go指南，安装Go语言；环境变量：go的环境变量，修改环境变量；采用Go Module的方式创建项目；编译发布：代码格式化工具，编译成可执行文件，跨平台编译</p>" />
        <!-- favicon -->
        <link rel="icon" type="image/png" href="/images/mowang.png">
        <!-- moment.js for date formatting -->
        <script src="/theme/js/moment.js"></script>
        <!-- css -->
        <link rel="stylesheet" type="text/css" href="/theme/css/main.css" />
        <!-- 左边的menu，如果页面高度不够，就跟着滚动，否则文章分类显示不全 -->
        <link rel="stylesheet" type="text/css" href="/theme/css/mycss/menu.css" />
		<script>
			
                /*! grunt-grunticon Stylesheet Loader - v2.1.2 | https://github.com/filamentgroup/grunticon | (c) 2015 Scott Jehl, Filament Group, Inc. | MIT license. */
    
    (function(e){function t(t,n,r,o){"use strict";function a(){for(var e,n=0;u.length>n;n++)u[n].href&&u[n].href.indexOf(t)>-1&&(e=!0);e?i.media=r||"all":setTimeout(a)}var i=e.document.createElement("link"),l=n||e.document.getElementsByTagName("script")[0],u=e.document.styleSheets;return i.rel="stylesheet",i.href=t,i.media="only x",i.onload=o||null,l.parentNode.insertBefore(i,l),a(),i}var n=function(r,o){"use strict";if(r&&3===r.length){var a=e.navigator,i=e.Image,l=!(!document.createElementNS||!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect||!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")||e.opera&&-1===a.userAgent.indexOf("Chrome")||-1!==a.userAgent.indexOf("Series40")),u=new i;u.onerror=function(){n.method="png",n.href=r[2],t(r[2])},u.onload=function(){var e=1===u.width&&1===u.height,a=r[e&&l?0:e?1:2];n.method=e&&l?"svg":e?"datapng":"png",n.href=a,t(a,null,null,o)},u.src="",document.documentElement.className+=" grunticon"}};n.loadCSS=t,e.grunticon=n})(this);(function(e,t){"use strict";var n=t.document,r="grunticon:",o=function(e){if(n.attachEvent?"complete"===n.readyState:"loading"!==n.readyState)e();else{var t=!1;n.addEventListener("readystatechange",function(){t||(t=!0,e())},!1)}},a=function(e){return t.document.querySelector('link[href$="'+e+'"]')},c=function(e){var t,n,o,a,c,i,u={};if(t=e.sheet,!t)return u;n=t.cssRules?t.cssRules:t.rules;for(var l=0;n.length>l;l++)o=n[l].cssText,a=r+n[l].selectorText,c=o.split(");")[0].match(/US\-ASCII\,([^"']+)/),c&&c[1]&&(i=decodeURIComponent(c[1]),u[a]=i);return u},i=function(e){var t,o,a;o="data-grunticon-embed";for(var c in e)if(a=c.slice(r.length),t=n.querySelectorAll(a+"["+o+"]"),t.length)for(var i=0;t.length>i;i++)t[i].innerHTML=e[c],t[i].style.backgroundImage="none",t[i].removeAttribute(o);return t},u=function(t){"svg"===e.method&&o(function(){i(c(a(e.href))),"function"==typeof t&&t()})};e.embedIcons=i,e.getCSS=a,e.getIcons=c,e.ready=o,e.svgLoadedCallback=u,e.embedSVG=u})(grunticon,this);
                
                grunticon(["/theme/css/icons.data.svg.css", "/theme/css/icons.data.png.css", "/theme/css/icons.fallback.css"]);
            </script>
        <noscript><link href="/theme/css/icons.fallback.css" rel="stylesheet"></noscript>
        <!-- menu toggle javascript -->
        <script type="text/javascript">
            document.addEventListener("DOMContentLoaded", initMenu);
            
            function initMenu(){
                var menu = document.getElementById("menu");
                var menulink = document.getElementById("menu-link");
                menulink.addEventListener("click", function toggleMenu(){
                        window.event.preventDefault();
                        menulink.classList.toggle('active');
                        menu.classList.toggle('active');              
                    });
            };
        </script>
        <!-- 不蒜子 -->
        <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

    <meta name="description" content="<p>使用：官网Go指南，安装Go语言；环境变量：go的环境变量，修改环境变量；采用Go Module的方式创建项目；编译发布：代码格式化工具，编译成可执行文件，跨平台编译</p>" />

    <meta name="tags" content="gotour" />
  <!-- 替换部分base的样式，看文章时，要再宽一点，右边有很多空间可以撑开 -->
  <link rel="stylesheet" type="text/css" href="/theme/css/mycss/article.css" />

</head>
<body>
    <div role="banner" id="masthead">
        <header>
            <a href="/"><img src="/images/mowang.png" alt="McManus Logo"></a>
                <h1>来玩魔王的咚@骑士救兵</h1>
            <a href="#menu" id="menu-link">more stuff</a>
            <nav id="menu">
                <ul>
                        <li><a href="/tags">tags</a></li>
                            <li><a href="/category/cloud.html">Cloud</a></li>
                            <li><a href="/category/docker.html">Docker</a></li>
                            <li class="active"><a href="/category/go.html">Go</a></li>
                            <li><a href="/category/linux.html">Linux</a></li>
                            <li><a href="/category/python.html">Python</a></li>
                            <li><a href="/category/xue-xi-bi-ji.html">学习笔记</a></li>
                            <li><a href="/category/yun-wei-zi-dong-hua.html">运维自动化</a></li>
                </ul>
            </nav>
        </header>
    </div>
        <div class="page" role="main">
  <div class="article" role="article">
    <article>
        <footer>
            <a name="top"></a>
            <p>
              <time datetime=" 2020-11-19 10:00:00+08:00">
                <script>document.write(moment('2020-11-19 10:00:00+08:00').format('LL'));</script>
              </time>
              ~
              <time datetime=" 2020-11-19 10:00:00+08:00">
                <script>document.write(moment('2020-11-19 11:40:00+08:00').format('LL'));</script>
              </time>
            </p>
        </footer>
        <header>
          <h2>
            Go 基础入门
          </h2>
        </header>
      <div class="content">
         <div class="toc">
<ul>
<li><a href="#shi-yong-go-yu-yan">使用Go语言</a><ul>
<li><a href="#guan-wang-go-zhi-nan">官网Go指南</a></li>
<li><a href="#an-zhuang-go-yu-yan">安装Go语言</a></li>
</ul>
</li>
<li><a href="#huan-jing-bian-liang">环境变量</a><ul>
<li><a href="#go-de-huan-jing-bian-liang">go的环境变量</a></li>
<li><a href="#xiu-gai-huan-jing-bian-liang">修改环境变量</a></li>
</ul>
</li>
<li><a href="#xiang-mu-jie-gou">项目结构</a></li>
<li><a href="#bian-yi-fa-bu">编译发布</a><ul>
<li><a href="#hello-world">Hello World</a></li>
<li><a href="#dai-ma-ge-shi-hua-gofmt">代码格式化（gofmt）</a></li>
<li><a href="#bian-yi-cheng-ke-zhi-xing-wen-jian">编译成可执行文件</a></li>
<li><a href="#kua-ping-tai-bian-yi">跨平台编译</a></li>
</ul>
</li>
</ul>
</div>
<h3 id="shi-yong-go-yu-yan"><a class="toclink" href="#shi-yong-go-yu-yan">使用Go语言</a></h3>
<p>有官方网站，通过浏览器，提供了简单的编辑器，可以输入go代码并在他们的服务器上运行，结果显示在浏览器上。这个只是方便试用和体验。<br>
最好的还是在本地安装go环境。  </p>
<h4 id="guan-wang-go-zhi-nan"><a class="toclink" href="#guan-wang-go-zhi-nan">官网Go指南</a></h4>
<p>都是中文版的：</p>
<ul>
<li>Go 语言之旅：<a href="https://tour.go-zh.org/welcome">https://tour.go-zh.org/welcome</a>  </li>
<li>Go 编程语言：<a href="https://go-zh.org">https://go-zh.org</a>  </li>
</ul>
<p>Go 语言之旅可以作为入门教程，并且可以Web在线写代码，提交执行在Web上显示结果。  </p>
<h4 id="an-zhuang-go-yu-yan"><a class="toclink" href="#an-zhuang-go-yu-yan">安装Go语言</a></h4>
<p>首先要下载安装Go语言。可以去国内的官网下载Go语言开发包：<a href="https://golang.google.cn/dl/">https://golang.google.cn/dl/</a> 。<br>
安装完成后验证一下：</p>
<div class="highlight"><pre><span></span><code><span class="gp">$ </span>go version
<span class="go">go version go1.15.4 windows/amd64</span>
</code></pre></div>

<p>安装好之后，还需要调整一下go语言的环境变量。最基本的环境变量已经帮我们设置好了，或者有初始值，所以直接就能用了。不过最好是先把开发环境调整好。  </p>
<h3 id="huan-jing-bian-liang"><a class="toclink" href="#huan-jing-bian-liang">环境变量</a></h3>
<p>Go语言开发工具包安装好之后，还有两个重要的环境变量需要设置：</p>
<ul>
<li>GOPATH：代表Go语言项目的工作目录，在Go Module模式之前非常重要，现在基本上用来存放使用go get命令获取的项目</li>
<li>GOBIN：代表Go编译生成的程序的安装目录，比如通过go install命令，会把生成的Go程序安装到GOBIN目录下，以供你在终端使用</li>
<li>GOPROXY：另外国内最好还是科学上网，换一个快一些的代理，GOPROXY=https://mirrors.aliyun.com/goproxy/</li>
</ul>
<p>假设工作目录为<code>G:\Golang\go</code>，那就把GOPATH设置为这个。然后可以把GOBIN设置为GOPATH目录下的bin子目录<code>$GOPATH/bin</code>，Windows系统的话是这么写<code>%GOPATH%\bin</code>。<br>
最方便的做法就是直接把这个设置为系统的环境变量。Windwos系统上安装好之后，就默认创建了GOPATH环境变量，需要的话去修改一下。GOBIN默认没有并且go里的默认值是空，需要手动添加一下。<br>
下面再展开一下环境变量。  </p>
<h4 id="go-de-huan-jing-bian-liang"><a class="toclink" href="#go-de-huan-jing-bian-liang">go的环境变量</a></h4>
<p>这里讲的是go的环境变量，不是操作系统的环境变量。<br>
使用命令<code>go env</code>可以打印所有的环境变量：</p>
<div class="highlight"><pre><span></span><code><span class="gp">PS C:\Users\Steed&gt; </span><span class="n">go</span> <span class="n">env</span>
<span class="go">set GO111MODULE=</span>
<span class="go">set GOARCH=amd64</span>
<span class="go">set GOBIN=</span>
<span class="go">set GOCACHE=C:\Users\Steed\AppData\Local\go-build</span>
<span class="go">set GOENV=C:\Users\Steed\AppData\Roaming\go\env</span>
<span class="go">set GOEXE=.exe</span>
<span class="go">set GOFLAGS=</span>
<span class="go">set GOHOSTARCH=amd64</span>
<span class="go">set GOHOSTOS=windows</span>
<span class="go">set GOINSECURE=</span>
<span class="go">set GOMODCACHE=C:\Users\Steed\go\pkg\mod</span>
<span class="go">set GONOPROXY=</span>
<span class="go">set GONOSUMDB=</span>
<span class="go">set GOOS=windows</span>
<span class="go">set GOPATH=C:\Users\Steed\go</span>
<span class="go">set GOPRIVATE=</span>
<span class="go">set GOPROXY=https://proxy.golang.org,direct</span>
<span class="go">set GOROOT=D:\Go</span>
<span class="go">set GOSUMDB=sum.golang.org</span>
<span class="go">set GOTMPDIR=</span>
<span class="go">set GOTOOLDIR=D:\Go\pkg\tool\windows_amd64</span>
<span class="go">set GCCGO=gccgo</span>
<span class="go">set AR=ar</span>
<span class="go">set CC=gcc</span>
<span class="go">set CXX=g++</span>
<span class="go">set CGO_ENABLED=1</span>
<span class="go">set GOMOD=</span>
<span class="go">set CGO_CFLAGS=-g -O2</span>
<span class="go">set CGO_CPPFLAGS=</span>
<span class="go">set CGO_CXXFLAGS=-g -O2</span>
<span class="go">set CGO_FFLAGS=-g -O2</span>
<span class="go">set CGO_LDFLAGS=-g -O2</span>
<span class="go">set PKG_CONFIG=pkg-config</span>
<span class="go">set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\Steed\AppData\Local\Temp\go-build907250114=/tmp/go-build -gno-record-gcc-switches</span>
<span class="gp">PS C:\Users\Steed&gt; </span>
</code></pre></div>

<p>虽然系统环境变量只设置了GOPATH，但是其他变量也都有值。  </p>
<h5 id="bang-zhu-xin-xi"><a class="toclink" href="#bang-zhu-xin-xi">帮助信息</a></h5>
<p>另外<code>go env</code>命令还有其他功能，可以用<code>go help env</code>命令查看帮助。<br>
要了解每个环境变量的意义，可以用<code>go help environment</code>命令查看帮助。  </p>
<h4 id="xiu-gai-huan-jing-bian-liang"><a class="toclink" href="#xiu-gai-huan-jing-bian-liang">修改环境变量</a></h4>
<p>有以下途径可以对go的环境变量进行设置：</p>
<ol>
<li>系统环境变量，一般都用这个</li>
<li>使用命令<code>go env -w NAME=VALUE</code></li>
</ol>
<p>修改环境变量后，建议关闭终端重新打开。因为当前终端的变量是在启动终端时读取的，新修改的环境变量未在之前打开的终端中生效。最保险的做法是在<strong>当前终端</strong>中用<code>go env</code>命令打印变量查看是否生效。  </p>
<h5 id="shi-yong-ming-ling"><a class="toclink" href="#shi-yong-ming-ling">使用命令</a></h5>
<p>使用命令的演示如下，</p>
<div class="highlight"><pre><span></span><code><span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">GOPROXY</span>   
<span class="go">https://proxy.golang.org,direct</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">-w</span> <span class="n">GOPROXY</span><span class="p">=</span><span class="n">https</span><span class="p">://</span><span class="n">mirrors</span><span class="p">.</span><span class="n">aliyun</span><span class="p">.</span><span class="n">com</span><span class="p">/</span><span class="n">goproxy</span><span class="p">/</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">GOPROXY</span>
<span class="go">https://mirrors.aliyun.com/goproxy/</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">-u</span> <span class="n">GOPROXY</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">GOPROXY</span>   
<span class="go">https://proxy.golang.org,direct</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt;</span>
</code></pre></div>

<p>适合临时修改变量，因为之后可以用-u参数再变回默认值。<br>
另外，使用这个命令无法覆盖系统环境变量的设置，也无法设置GOENV的值：</p>
<div class="highlight"><pre><span></span><code><span class="gp">PS C:\Users\Steed&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">-w</span> <span class="n">GOPATH</span><span class="p">=</span>
<span class="go">warning: go env -w GOPATH=... does not override conflicting OS environment variable</span>
<span class="gp">PS C:\Users\Steed&gt; </span><span class="n">go</span> <span class="n">env</span> <span class="n">-w</span> <span class="n">GOENV</span><span class="p">=</span>
<span class="go">go env -w: GOENV can only be set using the OS environment</span>
<span class="gp">PS C:\Users\Steed&gt;</span>
</code></pre></div>

<p>从保存信息中得知，变量GOENV只能通过系统环境变量来修改。  </p>
<p><strong>GOENV</strong><br>
使用命令-w对变量修改后，是保存在由GOENV指向的文件中的。然后用-u恢复的时候，则是从GOENV的文件中删除对应的行。  </p>
<h3 id="xiang-mu-jie-gou"><a class="toclink" href="#xiang-mu-jie-gou">项目结构</a></h3>
<p>采用Go Module的方式，可以在任何位置创建项目（<em>以前的Go项目必须要创建在GOPATH目录里</em>）。<br>
假设项目的位置是<code>G:\gitee.com\steeed\gotour</code>，那么打开终端，切换到该目录下执行命令：</p>
<div class="highlight"><pre><span></span><code><span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">mod</span> <span class="n">init</span> <span class="n">gotour</span>
<span class="go">go: creating new go.mod: module gotour</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span>
</code></pre></div>

<p>执行成功后，会生成一个go.mod文件。一般还可以手动创建一个lib目录，作为项目的子模块。根据项目需求可以新建很多个目录作为子模块，也可以继续嵌套为子模块的子模块。<br>
所以项目的目录结构一般是这样的：</p>
<div class="highlight"><pre><span></span><code>gotour
├── go.mod
├── lib
└── main.go
</code></pre></div>

<p>这个项目分成若干篇，每篇一个文件夹，所以这个项目的目录结构实际是这样的：</p>
<div class="highlight"><pre><span></span><code>gotour
├── ch01
│   └── main.go
├── ch02
│   └── main.go
└── go.mod
</code></pre></div>

<h3 id="bian-yi-fa-bu"><a class="toclink" href="#bian-yi-fa-bu">编译发布</a></h3>
<h4 id="hello-world"><a class="toclink" href="#hello-world">Hello World</a></h4>
<p>先写一个简单的程序：</p>
<div class="highlight"><pre><span></span><code><span class="c1">// ch01/main.go</span><span class="w"></span>
<span class="kn">package</span><span class="w"> </span><span class="nx">main</span><span class="w"></span>

<span class="kn">import</span><span class="w"> </span><span class="s">&quot;fmt&quot;</span><span class="w"></span>

<span class="kd">func</span><span class="w"> </span><span class="nx">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;Hello, World!&quot;</span><span class="p">)</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>

<p>代码完成后，可以运行下看看：</p>
<div class="highlight"><pre><span></span><code><span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">run</span> <span class="n">ch01</span><span class="p">/</span><span class="n">main</span><span class="p">.</span><span class="n">go</span>
<span class="go">Hello, World!</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span>
</code></pre></div>

<p><em>这里并不是直接运行，go语言是要编译后才能执行的。只不过这里直接编辑生成了临时文件，然后再运行临时文件。看起来像是一条命令直接运行。</em>  </p>
<h4 id="dai-ma-ge-shi-hua-gofmt"><a class="toclink" href="#dai-ma-ge-shi-hua-gofmt">代码格式化（gofmt）</a></h4>
<p>go默认提供一个代码格式化命令gofmt，会按照Go语言代码规范格式化文件中的代码。把之前的hello.go的代码搞乱一点，简单一点就改下缩进好了，然后运行下面的命令：</p>
<div class="highlight"><pre><span></span><code><span class="gp">$ </span>gofmt ch01/main.go
</code></pre></div>

<p>命令只会在终端输出格式化后的代码。要修改源文件还需要加上一些参数。<br>
不过一般是用go命令来调用的：</p>
<div class="highlight"><pre><span></span><code><span class="gp">$ </span>go fmt ch01/main.go
</code></pre></div>

<p>本质上还是调用gofmt并加上了一些必要的参数。  </p>
<h4 id="bian-yi-cheng-ke-zhi-xing-wen-jian"><a class="toclink" href="#bian-yi-cheng-ke-zhi-xing-wen-jian">编译成可执行文件</a></h4>
<p>在项目里的当前目录下编译生成可执行文件：</p>
<div class="highlight"><pre><span></span><code><span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="n">go</span> <span class="n">build</span> <span class="p">./</span><span class="n">ch01</span><span class="p">/</span><span class="n">main</span><span class="p">.</span><span class="n">go</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span><span class="p">./</span><span class="n">main</span> 
<span class="go">Hello, World!</span>
<span class="gp">PS I:\gitee.com\steeed\gotour&gt; </span>
</code></pre></div>

<p>编译生成的可执行文件可以直接在命令行中运行。  </p>
<p>另外还可以编译生成可执行文件到$GOBIN目录或者任意位置：</p>
<div class="highlight"><pre><span></span><code><span class="gp">$ </span>go install ./ch01/main.go
</code></pre></div>

<h4 id="kua-ping-tai-bian-yi"><a class="toclink" href="#kua-ping-tai-bian-yi">跨平台编译</a></h4>
<p>Go语言开发工具包还可以跨平台编译。就是你在macOS开发，可以编译成Linux、Window等平台上的可执行程序。这样，你就可以选择喜欢的操作系统做开发，然后跨平台编译成需要发布平台的可执行程序。<br>
具体则是通过两个环境变量来控制跨平台编译：</p>
<ul>
<li>GOOS：代表要编译的目标操作系统，常见的有 Linux、Windows、Darwin 等。</li>
<li>GOARCH：代表要编译的目标处理器架构，常见的有 386、AMD64、ARM64 等。</li>
</ul>
<p>下面是一个生成其他平台可执行程序的例子：</p>
<div class="highlight"><pre><span></span><code><span class="gp">$ </span><span class="nv">GOOS</span><span class="o">=</span>windows <span class="nv">GOARCH</span><span class="o">=</span>amd64 go build ./ch01/main.go
</code></pre></div>

<p><em>Linux系统中可以这样方便的临时设置环境变量，只在这条命令中有效。</em>  </p>
<p>关于GOOS和GOARCH更多的组合，可以去查看官方文档：<a href="https://golang.google.cn/doc/install/source#environment">https://golang.google.cn/doc/install/source#environment</a> 。  </p>
      </div>
      <div class="back-to-top">
        <a href="/">HOME</a>
        <a href="#top">TOP</a>
      </div>
    </article>
  </div>
<!-- end article -->
<!-- 页面往下滚动一段之后才会显示TOC -->
<script>
  window.onscroll = function() {
    var tocbox = document.getElementsByClassName('toc')[0];
    var osTop = document.documentElement.scrollTop || document.body.scrollTop;
    var osWidth = document.documentElement.scrollWidth || document.body.scrollWidth;
    // console.log(osTop)
    if (osTop>300 && osWidth>865) {
      tocbox.style.display = "block"
    }
    if (osTop<300 || osWidth<865) {
      tocbox.style.display = "none"
    }
  }
</script>
                <footer>
                    <div class="icons">
                    </div>
                    <span id="busuanzi_container_page_pv" style="padding: 10px">本文阅读量<span id="busuanzi_value_page_pv"></span>次</span>
                    <span id="busuanzi_container_site_pv" style="padding: 10px">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span>
                    <span id="busuanzi_container_site_uv" style="padding: 10px">本站总访客数<span id="busuanzi_value_site_uv"></span>人</span>
                    <p>© <script>document.write(moment().format('YYYY'));</script> 749B</p>
                </footer>
        </div>
</body>
</html>